<?php
if(!isset($NsMode))
	exit( "this is a error link" );



class NsMode {
	 private $cfg=array();
	
	/**
	 * 初始化，载入配置文件
	 * 
	 */
	 function __construct(){
	 	$NsMode=true;
	 	include_once('cfg.php');
	 	$this->cfg = $NMCfg;
	 	$this->opendb(); 
	 	
	 }
	 /**
	  * 打开数据库，并设置好时区和字符串
	  * @return unknown_type
	  */
	 private function opendb(){

		//$result = mysql_query('SELECT 1') or true;
		//if ($result) 
		//	return true;
 	
	 	
	 	if (!( mysql_connect($this->cfg['db']['local']
	 						,$this->cfg['db']['user']
	 						,$this->cfg['db']['pwd'])))
					return false;

					mysql_select_db($this->cfg['db']['dbase']);
					date_default_timezone_set($this->cfg['db']['timezone']);
					mysql_query("SET character_set_client = ".$this->cfg['db']['charset']);
					mysql_query("SET character_set_connection = ".$this->cfg['db']['charset']);
					mysql_query("SET character_set_database = ".$this->cfg['db']['charset']);
					mysql_query("SET character_set_results = ".$this->cfg['db']['charset']);
					mysql_query("SET character_set_server = ".$this->cfg['db']['charset']);
	 }
	 /**
	  * 载入模板文件
	  * @param $tName 数据的内容
	  * @param $type 调用模板的类型 0 tag多种语言
	  * @param $language 语言值  如果空 表示所有语言
	  * 
	  */
	 function tpl($tName,$type=0,$language=array()){
	 	$NsMode=true;
	 	
	 	include("template/edit{$type}.php");
	 }
	 /**
	  * 将所有配置文件建立为数据表，相当于初始化
	  * @return unknown_type
	  */
	 function createTableAll(){
	 	 foreach(glob(dirname(__FILE__).'/modes/*Cfg.php') as $filename)
          	$this->createTable(substr(basename($filename),0,strlen(basename($filename))-7) ,true);
	 }
	 /**
	  * 根据配置文件建立一个数据表，
	  * @param string $tName  表名，在modes必须有 表名cfg.php 的配置文件。
	  * @param bool $dropOld 是否删除旧表（如果存在的话 )
	  * @return bool 是否创建成功 
	  */
	 function createTable($tName,$dropOld=false){
	 	if($dropOld)
	 		mysql_query("drop table `$tName`");
	 	$sql="CREATE TABLE IF NOT EXISTS `$tName` ("
	 		."`{$tName}id` int(11) NOT NULL AUTO_INCREMENT"
	 		.",`{$tName}vid` int(11) DEFAULT 0"
	 		.",`lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT '".$this->cfg['defaultLanguage']."'";
	 		
	 		
	 	
	 	$v=$this->getFieldCfg($tName);
	 	foreach($v['f'] as $a)
	 		$sql.=$this->getSql_FieldStr($a);
	 	$sql.=" ,PRIMARY KEY (`{$tName}id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
	 	mysql_query($sql);
	 	return mysql_errno();
	 }
	 /**
	  * 返回sql创建字段语句
	  * @param array $arr 配置文件里 Fields 的成员 
	  * @return string 
	  */
	 private function getSql_FieldStr($arr){
	 	
	 	if($arr['type']=='string'){
	 		//`lang` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,
	 		return ",`{$arr['fname']}` varchar(200) COLLATE utf8_unicode_ci DEFAULT ''";
	 	}elseif($arr['type']=='int'){
	 		//`xxx` int(11) DEFAULT NULL,
	 		return ",`{$arr['fname']}` int(11) DEFAULT 0";
	 	}
	 }
	 /**
	  * 返回一个配置文件，导入到一个变量里
	  * @param string $tName 表名
	  * @return array 格式是 array('f'=>$Fields,'l'=$language)
	  */
	 private function getFieldCfg($tName){
	 	$NsMode=true;
	 	include_once("modes/{$tName}cfg.php");
	 	return array('f'=>$Fields,'l'=>$Language);
	 	
	 }
}